fork函数的那些事儿

您所在的位置:网站首页 linux c fork 数据库 fork函数的那些事儿

fork函数的那些事儿

#fork函数的那些事儿| 来源: 网络整理| 查看: 265

提到fork()函数就不得不提到父子进程,子进程是以父进程为模板通过fork()函数来创建的.父子进程共享,各自开辟空间(子进程会把父进程的虚拟地址空间拷贝一份,作为子进程的地址空间),拥有自己的进程.

一:父进程与子进程之间的约定

父进程返回子进程的pid

fork()函数成功子进程返回0

fork()函数执行失败,返回值为-1

1:失败的原因有两种:

1.内存不够,导致子进程无法继续申请地址空间

2.进程太多,导致申请失败

【注】:父子进程执行顺序没有先后关系,全靠调度器实现

2: 验证父子进程返回值 #include #include int main(){ //__pid_t和pid_t还有int 都是等价的 pid_t ret=fork(); if(ret>0){ //father printf("father:%d\n ",getpid()); } else if(ret== 0){ //child printf("child:%d\n",getpid()); }else{ perror("fork"); } sleep(1); return 0; } 3:【小结】: 父进程返回子进程的pid,子进程返回0通常需要让父子进程执行不同的逻辑,就可以借助fork的返回值来进行区分 二:神奇的fork()与缓冲区的秘密 #include #include int main(){ for(int i=0;i for(int i=0;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3